1. Technical Field
This disclosure relates to processors, and more particularly, hardware directed to the handling of streaming data.
2. Description of the Related Art
Many applications performed by computer system involve the use of streaming data. Streaming data is data obtained from memory at some regular address interval. Certain operations may be performed on all of the data from the data stream. For example, data of a data stream may be obtained from a contiguous group of memory addresses, beginning with a specified memory address, and continuing until all of the data in the group of addresses has been obtained. Alternatively, data of a data stream may be obtained beginning with a certain address, with additional blocks of data being obtained at equal address intervals from one another (sometimes referred to as a ‘stride’). The data obtained from the stream may then undergo some form of processing. In many cases, the same operation may be performed on each block of data from the stream.
Many modern processors include a load/store unit which may execute instructions to fetch data from memory or write data to memory. For streaming data, the load/store unit may receive a series of instructions to read data from memory, with one instruction per data element to be read. As data elements are read from memory by the load/store unit, they may be passed either to registers to be used as operands in subsequent operations, or directly to execution units which may then perform operations on the elements of the data stream. Thereafter, data may be returned to the load/store unit and subsequently written back to memory.